package com.qingmeng.apicommon.service;

import com.qingmeng.apicommon.model.entity.InterfaceInfo;
import com.qingmeng.apicommon.model.entity.User;
import com.qingmeng.apicommon.model.entity.UserInterfaceInfo;

/**
 * 公共远程调用服务
 */
public interface RemoteService {

    /**
     * 根据accesskey，获取用户信息，判断用户是否存在
     * @param accessKey
     * @return 用户信息
     */
    User getInvokerUser(String accessKey);

    /**
     * 根据接口路径，和请求方式，判断模拟接口是否存在
     * @param path
     * @param method
     * @return  接口详细信息
     */
    InterfaceInfo isInvokeMock(String path, String method);

    /**
     * 调用接口统计，接口调用成功，用户调用接口次数加1
     * @param userId
     * @param interfaceId
     */
    boolean invokeCountNum(long userId,long interfaceId);

    /**
     * 查询用户剩余调用次数
     * @param userId
     * @param interfaceId
     * @return
     */
    boolean invokeHaveNum(long userId, long interfaceId);

}
